package com.ahora.org.ejb.dao.interfaces;

import java.util.Date;
import java.util.List;

import javax.ejb.Local;

import com.ahora.org.ejb.jpa.beans.BandejaDTO;
import com.ahora.org.ejb.jpa.beans.GenericoBean5;
import com.ahora.org.ejb.jpa.beans.RequisitoProcesosDTO;
import com.ahora.org.ejb.jpa.entities.Accion;
import com.ahora.org.ejb.jpa.entities.Area;
import com.ahora.org.ejb.jpa.entities.DetalleAccionDoc;
import com.ahora.org.ejb.jpa.entities.DetalleAccionExpe;
import com.ahora.org.ejb.jpa.entities.MovimientoDocumento;
import com.ahora.org.ejb.jpa.entities.MovimientoExpediente;
import com.ahora.org.ejb.jpa.entities.Usuario;
@Local
public interface BandejaExpedienteDAO {
	public abstract List<BandejaDTO> listarExpedientesBandeja(int idUsuario);
	public abstract List<BandejaDTO> listaDocumentosInternosBandeja(int idUsuario)throws Exception;
	
	public abstract List<BandejaDTO> listarExpedientesTODOAREA(int idUsuario);
	public abstract List<Accion> listarAcciones();
	public abstract List<Area> listarAreas() throws Exception;
	public abstract String listarNombresAreas(int codigo)throws Exception;
	public abstract List<Usuario> listarUsuario() throws Exception ;
	public abstract List<GenericoBean5> listarFotosRequisitos();
	public abstract List<RequisitoProcesosDTO> listarRequisitosCupex(int idExpediente);
	public abstract String validarRequisitoCupex(BandejaDTO expediente, Date fecha, String observacion,
			Usuario obUserLog, List<RequisitoProcesosDTO> listaRequisitosEvaluar) ;
	public abstract String insertarDerivacionAutomatica(BandejaDTO objBandeja, Usuario objUsuarioLogin);
	public abstract void insertarDetalleAccionExpediente(DetalleAccionExpe detexpeacc,
			Usuario obUserLog);
	public abstract void update(int estado, int requisito, int expediente, Usuario obUserLog);
	public abstract int insertarMovimientoDocumento(MovimientoDocumento documento,
			Usuario userLog);
	public abstract int insertarMovimientoExpediente(MovimientoExpediente expediente,
			int idMovimiento, Usuario userLog);
	public abstract void insertarDetalleAccionDocumento(DetalleAccionDoc entity,
			Usuario userLog);
	public abstract String registrarExpedienteInform(BandejaDTO expediente, Usuario obUserLog);
	public abstract String derivarFirmaDigital(BandejaDTO expediente, Usuario obUserLog);
}
